Skip to content

ci: improve wasm build caching#175

Merged
roife merged 2 commits into
masterfrom
chore/ci-cache
May 27, 2026
Merged

ci: improve wasm build caching#175
roife merged 2 commits into
masterfrom
chore/ci-cache

Conversation

@roife

@roife roife commented May 27, 2026

Copy link
Copy Markdown
Member

Summary

  • pin the Rust nightly toolchain and route CI through shared setup actions
  • add final playground WASM artifact caching for docs builds
  • add sccache for Rust and slang CMake builds, with source-aware rust-cache keys

Validation

Copilot AI review requested due to automatic review settings May 27, 2026 15:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR overhauls Rust toolchain handling and CI caching: it pins the nightly toolchain in rust-toolchain.toml, introduces shared composite actions for Rust toolchain installation and sccache setup, routes Rust/CMake/WASM jobs through them, and adds a final-artifact cache for playground/public/wasm that lets docs builds short-circuit Rust/Emscripten/WASM steps on a cache hit. It also drops the now-unused qihe submodule entry and removes submodules: recursive from all checkouts.

Changes:

  • Pin nightly to nightly-2026-05-24 and add .github/actions/setup-rust + .github/actions/setup-sccache; wire them into ci.yml, release.yml, docs-preview.yml, deploy-docs.yml, and update build-vide-wasm.mjs and crates/slang/bindings/rust/build.rs (opt-in CMake compiler launcher) accordingly.
  • Add source-aware rust-cache keys and a playground/public/wasm restore/verify/save cache pattern in both docs workflows that gates Rust/sccache/rust-cache/Emscripten/build steps on cache miss.
  • Remove the qihe submodule entry and submodules: recursive from all checkout steps, and remove the now-redundant safe.directory entry for crates/slang in Alpine jobs.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
File Description
rust-toolchain.toml Pins nightly date and adds clippy/rustfmt components with minimal profile.
.github/actions/setup-rust/action.yml New composite action parsing rust-toolchain.toml and installing via dtolnay/rust-toolchain@master.
.github/actions/setup-sccache/action.yml New composite action installing sccache and exporting env vars (incl. optional VIDE_USE_SCCACHE_CMAKE).
.github/workflows/ci.yml Adds path filters, routes through new actions, drops submodules/safe-directory, adds source-aware cache keys.
.github/workflows/release.yml Same migration to shared actions, adds matrix rust-target and source-aware cache keys for packagers.
.github/workflows/docs-preview.yml Broadens triggers and adds final-WASM restore/verify/save with skip conditions on cache hit.
.github/workflows/deploy-docs.yml Mirrors the docs-preview WASM caching and skip logic for production docs.
crates/slang/bindings/rust/build.rs Opt-in CMake *_COMPILER_LAUNCHER definitions gated on VIDE_USE_SCCACHE_CMAKE.
playground/scripts/build-vide-wasm.mjs Drops explicit rustup/--toolchain nightly invocations now that the toolchain file pins the version.
.gitmodules Removes the unused qihe submodule entry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

Copy link
Copy Markdown

Docs preview: https://vide.pascal-lab.net/preview/pr-175/

@roife roife merged commit 161dedb into master May 27, 2026
10 checks passed
@roife roife deleted the chore/ci-cache branch May 27, 2026 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants